function ActionsObject(theGame){
	var game = theGame;
	this.resumeGame = function(){
		game.getStatuses().popAndShow();
	};
	this.startGame = function(){
		if((game.getStatuses().getCurrent() == "confirmStart")||(!game.mustConfirmStart())){
			game.start();
		}else{
			game.getStatuses().show("confirmStart");
		}
	};
	this.mainMenu = function(pushCurrent){
		if(pushCurrent){
			game.getStatuses().pushAndShow("mainMenu");
		}else{
			game.getStatuses().show("mainMenu");
		}
	};
	this.loadGame = function(){
		game.getStatuses().show("loadGame");
	};
	this.loadGameData = function(data){
		this.mainMenu(false);
	};
	this.saveGame = function(){
		game.getStatuses().show("saveGame");
	};
	this.quitGame = function(){
		alert("Not Implemented!");
	};
	this.help = function(){
		game.getHelps().show(game.getStatuses().getCurrent());
	};
	this.about = function(){
		if(game.getStatuses().getCurrent()!="about"){
			game.getStatuses().pushAndShow("about");
		}
	};
	this.exitAbout = function(){
		if(game.getStatuses().getCurrent()=="about"){
			game.getStatuses().popAndShow();
		}
	};
	this.exitDock = function(){
		game.getAvatar().clearBoundFor();
		game.getAvatar().setIsland(null);
		game.getAvatar().clearDaysAtSea();
		game.getStatuses().show("atSea");
	};
	this.enterTrade = function(commodity){
		game.getAvatar().setTradingCommodity(commodity);
		game.getStatuses().show("trade");
	};
	this.exitTrade = function(){
		game.getStatuses().show("market");
	};
	this.enterMarket = function(){
		game.getStatuses().show("market");
	};
	this.exitMarket = function(){
		game.getStatuses().show("docked");
	};
	this.enterShipyard = function(){alert("Not Implemented!");};
	this.enterTavern = function(){alert("Not Implemented!");};
	this.enterShip = function(){alert("Not Implemented!");};
	this.sail = function(){
		game.getAvatar().incrementDaysAtSea();
		game.getAvatar().incrementDays();
		var movement = game.getUtilities().speedAndHeadingToLocation(game.getAvatar().getSpeed(),game.getAvatar().getHeading());
		game.getAvatar().getLocation().addLocation(movement);
		//TODO: daily consumptions
		game.getStatuses().show("atSea");
	};
	this.chooseIslandHeading = function(){
		game.getStatuses().show("chooseIslandHeading");
	};
	this.chooseHeading = function(){
		game.getStatuses().show("chooseHeading");
	};
	this.chooseSpeed = function(){alert("Not Implemented!");};
	this.dockAt = function(island){
		game.getIslands().getIsland(island).setVisited();
		game.getAvatar().setIsland(island);
		game.getStatuses().show("docked");
	};
	this.leaveAtSeaDialog = function(){
		game.getStatuses().show("atSea");
	};
	this.headForIsland = function(island){
		game.getAvatar().setBoundFor(island);
		game.getAvatar().setHeading(
			game.getUtilities().radiansToHeading(
				game.getAvatar().getLocation().getDirectionTo(
					game.getIslands().getIsland(island).getLocation())));
		this.leaveAtSeaDialog();
	};
	this.setHeading = function(degrees,minutes,seconds){
		game.getAvatar().clearBoundFor();
		game.getAvatar().setHeading(Number(degrees) + (Number(minutes)+Number(seconds)/game.getConfig().getSecondsPerMinute())/game.getConfig().getMinutesPerDegree());
		game.getStatuses().show("atSea");
	};
	this.buyTradedCommodity = function(units,pricePerUnit){
		game.getAvatar().getCommodity(game.getAvatar().getTradingCommodity()).buyUnits(units,pricePerUnit);
		game.getIslands().getIsland(game.getAvatar().getIsland()).getCommodity(game.getAvatar().getTradingCommodity()).buyUnits(units);
		game.getAvatar().getCurrencyCommodity().removeUnits(units*pricePerUnit);
		game.getStatuses().showCurrent();
	};
	this.sellTradedCommodity = function(units,pricePerUnit){
		game.getAvatar().getCommodity(game.getAvatar().getTradingCommodity()).sellUnits(units);
		game.getIslands().getIsland(game.getAvatar().getIsland()).getCommodity(game.getAvatar().getTradingCommodity()).sellUnits(units);
		game.getAvatar().getCurrencyCommodity().addUnits(units*pricePerUnit);
		game.getStatuses().showCurrent();
	};
}